<?php


namespace app\admin\controller;

use app\admin\common\controller\Base;
use app\admin\common\model\Article as ArtModel;
use app\admin\common\model\Cate;
use think\facade\Request;
use think\facade\Session;

class Article extends Base
{
    //文章管理的首页
    public function index(){
        //1检查用户是否登录
        $this->isLogin();

        //2登录成功后直接跳转到文章管理界面
        return $this->redirect('artList');
    }

    //文章分类列表
    public function artList(){
        //1检查用户是否登录
        $this->isLogin();

        //2获取当前用户id和用户级别
        $userId = Session::get('admin_id');
        $isAdmin = Session::get('admin_level');

        //3获取当前用户发布的文章
        $artList = ArtModel::where('user_id',$userId)->paginate(5);

        //4如果是超级管理员，获取全部文章
        if($isAdmin==1){
            $artList = ArtModel::paginate(5);

        }
//        halt($isAdmin);
        //5设置模板变量
        $this->view->assign('title','文章管理');
        $this->view->assign('empty','<span style="color: red">没有文章</span>');
        $this->view->assign('artList',$artList);

        //6渲染文章显示的模板
        return $this->view->fetch('artList');

    }

    //渲染编辑分类界面
    public function artEdit(){
        //1获取到文章的id
        $artId = Request::param('id');

        //2根据主键查询要更新的文章信息
        $artInfo = ArtModel::where('id',$artId)->find();

        //2.1获取栏目信息
        $cateList = Cate::all();

        //3.设置模板变量
        $this->view->assign('title','编辑文章');
        $this->view->assign('artInfo',$artInfo);
        $this->view->assign('cateList',$cateList);

        //4.渲染模板
        return $this->view->fetch('artEdit');
    }

    //执行编辑操作
    public function doEdit(){
        //1.获取用户提交的信息
        $data = Request::param();
        //2
        //获取上传的图片信息
        $file = Request::file('title_img');
//        halt($file);

        //文件信息一验证，验证成功后再上传到服务器指定目录以public为起始目录
        $info = $file->validate([
            'size'=>1000000000,
            'exi'=>'jpeg,jpg,png,gif',
        ])->move('uploads/');
//        halt($info);
        if($info){
            $data['title_img'] = $info->getSaveName();
        }else{
            $this->error($file->getError());
        }
        //将数据写到数据库
        if(ArtModel::update($data)){
            $this->success('更新成功','artList');
        }else{
            $this->error('文章更新失败');
        }

    }

    //执行删除操作
    public function doDelete(){
        //1.获取要删除的id
        $id = Request::param('id');
//        halt($id);

        //2.执行删除
        if(ArtModel::where('id',$id)->delete()){
            return $this->success('删除成功','artList');
        }
        $this->error('删除失败');
    }

}